package com.itheima.Controller;

import cn.hutool.core.io.FileUtil;
import com.itheima.config.AliyunOSSProperties;
import com.itheima.pojo.Result;
import com.itheima.utils.AliyunOSSUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
public class UploadController {
//    // Endpoint以华东1（杭州）为例，其它Region请按实际情况填写。
//    @Value("${aliyun.oss.endpoint}")
//    private String endpoint ;
//
//    // 填写Bucket名称，例如examplebucket。
//    @Value("${aliyun.oss.bucketName}")
//    private String bucketName ;

    @Autowired
    AliyunOSSProperties aliyunOSSProperties;

    @PostMapping("/upload")
    public Result upload(MultipartFile file) throws Exception {
        // 1. 获取文件原始名
        String filename = file.getOriginalFilename();

        // 2. 生成文件后缀名
        String extname = FileUtil.getSuffix(filename);

        // 3. 调用工具类，上传文件到OSS
        String url = AliyunOSSUtils.upload(aliyunOSSProperties.getEndpoint(),
                aliyunOSSProperties.getBucketName(), file.getBytes(), extname);

        // 4.路径返回给前端
        return Result.success(url);

    }


    /**
     * 本地存储
     */
    //    @PostMapping("/upload")
    //    public Result upload(MultipartFile file) throws IOException {
    //
    ////        1.获取文件原始名
    //        String filename = file.getOriginalFilename();
    ////        2.生成随机文件名
    //        String uuid = UUID.randomUUID().toString();
    ////        3.得到文件后缀名
    //        String suffix = FileUtil.getSuffix(filename);
    ////        4.拼接成新文件名
    //        filename = uuid + "." + suffix;
    ////        5.保存到本地文件夹
    //        file.transferTo(new File("C:\\Users\\Administrator\\Desktop\\images", filename));
    //
    //        //        返回图片地址
    //        return Result.success("C:\\Users\\Administrator\\Desktop\\images" + filename);
    //    }

    }
